The present invention relates to browsers, and in particular, to providing a stream of data to a browser to update page properties.
The use of networks is proliferating among various network users that range from small operations to large enterprises. As the use of networks increases, the dependency of network users upon networks increases, and the capability to manage networks becomes more critical. Large enterprises usually dedicate staff to the task of network management. Smaller operations, such as small businesses, may allocate the task of network management to xe2x80x9cmulti-roledxe2x80x9d staff, who are also allocated to other information systems management tasks. For example, a single person in a small legal office may perform a variety of duties related to managing information systems, including, for example, ordering software, hardware, and computer related services, debugging hardware and software problems as they may arise, and managing the network in the legal office.
A key element for managing a network is network device management software, and in particular, the user interface through which the user interacts with the network device management software. Network device management software is software used to monitor and configure a particular network element. A network element is a computer system primarily dedicated to processing network traffic on a network. Network elements include network devices, such routers, gateways, and switching devices. A user interacts with the network device management software through a user interface.
A conventional user interface is a command line interface. A command line interface is a xe2x80x9croll and scrollxe2x80x9d terminal interface through which a user inputs keywords and other parameters. The keywords and other parameters represent commands. The interface usually transmits the user inputted commands to the network element specified by the user, and in particular, to a process on the specified network element that carries out the tasks indicated by the commands (xe2x80x9ccommand processorxe2x80x9d). The commands that may be supported are numerous, and include commands for configuring a device, or commands for retrieving information about the configuration of the particular network element. Examples of commands include a command for retrieving information about whether a port is operational, active or inactive, or a command for shutting down a port.
One advantage of the command line processor is that it may be run by any computer coupled to a network that is configured to run as a terminal, such as work stations and personal computers that may run terminal emulators. A disadvantage of the command line interface is that it requires a user to know numerous commands. A user, such as a multi-role user, may use the command line interface too infrequently to become proficient in the use of commands. For such users, the command line processor may be too cumbersome to use. In addition, the command line interface is subject to the well known limitations of roll and scroll interfaces.
A mechanism that addresses the drawbacks of the command line interface is a graphical user interface (xe2x80x9cGUIxe2x80x9d). A GUI displays various windows with graphical controls, such as menus, list boxes, action buttons, and radio buttons. Many of the graphical controls are labeled. The graphical icons and labels communicate what commands may be issued though the interface, and how the graphical controls may be manipulated to issue the commands.
One drawback of the GUI stems from the way in which it is typically implemented. Typically, a GUI may be implemented in software that requires that the software is installed on a computer before the GUI may run on the computer. For example, a GUI developed to run as an application in the Windows operating system from Microsoft must be installed on a personal computer before the GUI may be run on the computer. Thus, a GUI may be unavailable to network administrators who are at locations lacking a computer that has the necessary installed software. In addition, software licenses may have to be purchased, maintained, and tracked for every computer on which the GUI is installed. When software is updated, each computer on which the software resides must be reconfigured. Finally, the cost of the software is often economically unjustified, as in the case of, for example, small businesses with multi-role users whose use and need for the network device management software may be intermittent.
A solution that addresses drawbacks due to installation requirements is to implement the GUI in the Java (R) programming language. Java-based GUIs may run on Java-enabled browsers, which are available on many computers. A browser is a computer component configured to retrieve data over a network using the Hypertext Transport Protocol (xe2x80x9cHTTPxe2x80x9d), and to execute code included in the retrieved data. Typically, the retrieved data is a file containing code written in the Hypertext Markup Language (xe2x80x9cHTMLxe2x80x9d).
Java enabled browsers may interpret Java byte code. In response to reading a file that may contain HTML or Java code, a browser may render a display in a window. A browser uses a window to display any item rendered by the browser. This window is referred to as the browser""s display. The display may contain other windows.
At any particular moment, a GUI may reflect information about a particular network element. A browser may retrieve code used to generate the GUI from the network element reflected by the GUI, and in particular, from an HTTP server residing on the network element. An HTTP server is a server that follows the HTTP protocol. Network elements that include HTTP servers often store data served by the HTTP server in the static memory of the network element.
Many network elements are equipped with flash memory as their only form of static memory. The cost of manufacturing these network elements thus depends on the amount of flash memory used in the network elements. To supply these types of devices at competitive prices, storage requirements for Java based programs for GUIs may be too great.
To overcome the storage requirements of Java, GUIs may be written using code that requires less storage, such as HTML code. To run a GUI written in HTML, a browser may download a file, and then interpret it.
A desirable feature of any GUI is to reflect in real time the status of a particular network element. For example, a GUI of a network device management program may include graphical controls that indicate the status of the ports of one or more network elements. When one of the ports becomes disabled, the graphical control is updated almost immediately to indicate the new status of the port.
Unfortunately, to reflect the new status on an HTML based GUI, the file containing HTML code that defines the GUI may have to be refreshed, that is, reloaded and reinterpreted. Even more, reflecting real-time information may require periodic refreshing, resulting in undesirable amounts of overhead in a variety of forms. For example, the network element regenerates the file periodically, the regenerated files are retransmitted over the network to the client running the browser, and the browser on the client reinterprets the intermittently reloaded file. Refreshing the browser may require the user to enter a command manually. This is undesirable because it requires periodic action by the user. It would be preferable to have a way to passively monitor the changing information. Further, when the GUI or browser page includes large embedded graphics, a refresh may take a long time.
Based on the foregoing, it is clearly desirable to provide a GUI that interacts with network elements for the purposes of network device management and that runs on a browser, and that reduces the amount of code that must be stored on a network element and the overhead attendant to re-transmitting a file.
A mechanism for supplying a stream of data used to update information displayed by a browser is described. The browser periodically refreshes a frame document, transmitting a request for the frame document to a network device. When the network device receives a request from a browser for a frame document, it generates a new version of the frame document, and supplies it to the browser. The new version of the frame document may include new definitions for routines which, as redefined, reflect current information about the network element. The current information may be retrieved by invoking these routines. The frame may be defined to have no height or width.